package com.yantong.constant;

import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

/**
 * 配送状态
 * 骑手状态
 1：待推送（用于配送系统不支持预约单情况下，开放平台保留订单延迟推送的状态）；
 2：待接单；5：已分配；6：已到店；7：配送中；10：已送达；15：已取消；21：商家确认收货；-7：妥投异常操作失败；22：妥投异常操作完成；-1：呼叫失败；
 -2：配送异常；-3：取消失败；4：待转派（15、-1，-2 需要重新呼叫骑手）；-4：分配超时；-5：取餐超时；-6：妥投异常；
 8：转派中（表示DMS当前转派的第三方骑手公司失败，正转派下一家骑手公司 或 DMS出现配送异常，正转派其他骑手）；9：门店自送；-100：未知状态
 */
public enum DeliveryStatus {
    waiting_list(2, "待接单"),
    allocated(5, "已分配"),
    arriveMerchant(6, "已到店"),
    distribution(7, "配送中"),//商城订单：待发货；外卖订单：待商家接单；预约订单：待使用；拼团订单：待分享；
    have_arrived(10, "已送达"),//外卖订单：商家已接单（用户），待下单（商家）
    cancel(15, "已取消"),
    wait_redeploy(4, "待转派")
    ;

    private int code;
    private String msg;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }



    private static Map<Integer, String> all= new HashMap<>();
    static{
        for(DeliveryStatus orderStatus: EnumSet.allOf(DeliveryStatus.class)){
            all.put(orderStatus.code, orderStatus.msg);
        }
    }
    public static String get(Integer code){
        return all.get(code);
    }

    DeliveryStatus(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}
